<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span>
</span><span id="line-2"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.CmmToAsm.X86.RegInfo</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-3"></span><span>        </span><span class="annot"><a href="GHC.CmmToAsm.X86.RegInfo.html#mkVirtualReg"><span class="hs-identifier">mkVirtualReg</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-4"></span><span>        </span><span class="annot"><a href="GHC.CmmToAsm.X86.RegInfo.html#regDotColor"><span class="hs-identifier">regDotColor</span></a></span><span>
</span><span id="line-5"></span><span class="hs-special">)</span><span>
</span><span id="line-6"></span><span>
</span><span id="line-7"></span><span class="hs-keyword">where</span><span class="hs-cpp">

#include &quot;HsVersions.h&quot;
</span><span>
</span><span id="line-11"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-12"></span><span>
</span><span id="line-13"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html"><span class="hs-identifier">GHC.CmmToAsm.Format</span></a></span><span>
</span><span id="line-14"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html"><span class="hs-identifier">GHC.Platform.Reg</span></a></span><span>
</span><span id="line-15"></span><span>
</span><span id="line-16"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-17"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#"><span class="hs-identifier">GHC.Platform</span></a></span><span>
</span><span id="line-18"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html"><span class="hs-identifier">GHC.Types.Unique</span></a></span><span>
</span><span id="line-19"></span><span>
</span><span id="line-20"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html"><span class="hs-identifier">GHC.Types.Unique.FM</span></a></span><span>
</span><span id="line-21"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html"><span class="hs-identifier">GHC.CmmToAsm.X86.Regs</span></a></span><span>
</span><span id="line-22"></span><span>
</span><span id="line-23"></span><span>
</span><span id="line-24"></span><span class="annot"><a href="GHC.CmmToAsm.X86.RegInfo.html#mkVirtualReg"><span class="hs-identifier hs-type">mkVirtualReg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#VirtualReg"><span class="hs-identifier hs-type">VirtualReg</span></a></span><span>
</span><span id="line-25"></span><span id="mkVirtualReg"><span class="annot"><span class="annottext">mkVirtualReg :: Unique -&gt; Format -&gt; VirtualReg
</span><a href="GHC.CmmToAsm.X86.RegInfo.html#mkVirtualReg"><span class="hs-identifier hs-var hs-var">mkVirtualReg</span></a></span></span><span> </span><span id="local-6989586621681007798"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681007798"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span id="local-6989586621681007797"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681007797"><span class="hs-identifier hs-var">format</span></a></span></span><span>
</span><span id="line-26"></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681007797"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-27"></span><span>        </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF32"><span class="hs-identifier hs-var">FF32</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Unique -&gt; VirtualReg
</span><a href="GHC.Platform.Reg.html#VirtualRegD"><span class="hs-identifier hs-var">VirtualRegD</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681007798"><span class="hs-identifier hs-var">u</span></a></span><span>
</span><span id="line-28"></span><span>        </span><span class="hs-comment">-- for scalar F32, we use the same xmm as F64!</span><span>
</span><span id="line-29"></span><span>        </span><span class="hs-comment">-- this is a hack that needs some improvement.</span><span>
</span><span id="line-30"></span><span>        </span><span class="hs-comment">-- For now we map both to being allocated as &quot;Double&quot; Registers</span><span>
</span><span id="line-31"></span><span>        </span><span class="hs-comment">-- on X86/X86_64</span><span>
</span><span id="line-32"></span><span>        </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF64"><span class="hs-identifier hs-var">FF64</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Unique -&gt; VirtualReg
</span><a href="GHC.Platform.Reg.html#VirtualRegD"><span class="hs-identifier hs-var">VirtualRegD</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681007798"><span class="hs-identifier hs-var">u</span></a></span><span>
</span><span id="line-33"></span><span>        </span><span id="local-6989586621681007793"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681007793"><span class="hs-identifier hs-var">_other</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Unique -&gt; VirtualReg
</span><a href="GHC.Platform.Reg.html#VirtualRegI"><span class="hs-identifier hs-var">VirtualRegI</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681007798"><span class="hs-identifier hs-var">u</span></a></span><span>
</span><span id="line-34"></span><span>
</span><span id="line-35"></span><span class="annot"><a href="GHC.CmmToAsm.X86.RegInfo.html#regDotColor"><span class="hs-identifier hs-type">regDotColor</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#RealReg"><span class="hs-identifier hs-type">RealReg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-36"></span><span id="regDotColor"><span class="annot"><span class="annottext">regDotColor :: Platform -&gt; RealReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.RegInfo.html#regDotColor"><span class="hs-identifier hs-var hs-var">regDotColor</span></a></span></span><span> </span><span id="local-6989586621681007791"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681007791"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681007790"><span class="annot"><span class="annottext">RealReg
</span><a href="#local-6989586621681007790"><span class="hs-identifier hs-var">reg</span></a></span></span><span>
</span><span id="line-37"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqFM RealReg [Char] -&gt; RealReg -&gt; Maybe [Char]
forall key elt. Uniquable key =&gt; UniqFM key elt -&gt; key -&gt; Maybe elt
</span><a href="GHC.Types.Unique.FM.html#lookupUFM"><span class="hs-identifier hs-var">lookupUFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; UniqFM RealReg [Char]
</span><a href="GHC.CmmToAsm.X86.RegInfo.html#regColors"><span class="hs-identifier hs-var">regColors</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681007791"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">RealReg
</span><a href="#local-6989586621681007790"><span class="hs-identifier hs-var">reg</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-38"></span><span>        </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681007787"><span class="annot"><span class="annottext">[Char]
</span><a href="#local-6989586621681007787"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Char] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><a href="#local-6989586621681007787"><span class="hs-identifier hs-var">str</span></a></span><span>
</span><span id="line-39"></span><span>        </span><span class="annot"><span class="annottext">Maybe [Char]
</span><span class="hs-identifier">_</span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Char] -&gt; SDoc
forall a. [Char] -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;Register not assigned a color&quot;</span></span><span>
</span><span id="line-40"></span><span>
</span><span id="line-41"></span><span class="annot"><a href="GHC.CmmToAsm.X86.RegInfo.html#regColors"><span class="hs-identifier hs-type">regColors</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#RealReg"><span class="hs-identifier hs-type">RealReg</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">]</span><span>
</span><span id="line-42"></span><span id="regColors"><span class="annot"><span class="annottext">regColors :: Platform -&gt; UniqFM RealReg [Char]
</span><a href="GHC.CmmToAsm.X86.RegInfo.html#regColors"><span class="hs-identifier hs-var hs-var">regColors</span></a></span></span><span> </span><span id="local-6989586621681007784"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681007784"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(RealReg, [Char])] -&gt; UniqFM RealReg [Char]
forall key elt. Uniquable key =&gt; [(key, elt)] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#listToUFM"><span class="hs-identifier hs-var">listToUFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; [(RealReg, [Char])]
</span><a href="GHC.CmmToAsm.X86.RegInfo.html#normalRegColors"><span class="hs-identifier hs-var">normalRegColors</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681007784"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-43"></span><span>
</span><span id="line-44"></span><span class="annot"><a href="GHC.CmmToAsm.X86.RegInfo.html#normalRegColors"><span class="hs-identifier hs-type">normalRegColors</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Platform.Reg.html#RealReg"><span class="hs-identifier hs-type">RealReg</span></a></span><span class="hs-special">,</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-45"></span><span id="normalRegColors"><span class="annot"><span class="annottext">normalRegColors :: Platform -&gt; [(RealReg, [Char])]
</span><a href="GHC.CmmToAsm.X86.RegInfo.html#normalRegColors"><span class="hs-identifier hs-var hs-var">normalRegColors</span></a></span></span><span> </span><span id="local-6989586621681007781"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681007781"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-46"></span><span>    </span><span class="annot"><span class="annottext">[RealReg] -&gt; [[Char]] -&gt; [(RealReg, [Char])]
forall a b. [a] -&gt; [b] -&gt; [(a, b)]
</span><a href="../../base/src/GHC.List.html#zip"><span class="hs-identifier hs-var">zip</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(RegNo -&gt; RealReg) -&gt; [RegNo] -&gt; [RealReg]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">RegNo -&gt; RealReg
</span><a href="GHC.Platform.Reg.html#realRegSingle"><span class="hs-identifier hs-var">realRegSingle</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">RegNo
</span><span class="hs-number">0</span></span><span class="hs-glyph">..</span><span class="annot"><span class="annottext">Platform -&gt; RegNo
</span><a href="GHC.CmmToAsm.X86.Regs.html#lastint"><span class="hs-identifier hs-var">lastint</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681007781"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[[Char]]
</span><a href="#local-6989586621681007778"><span class="hs-identifier hs-var">colors</span></a></span><span>
</span><span id="line-47"></span><span>        </span><span class="annot"><span class="annottext">[(RealReg, [Char])] -&gt; [(RealReg, [Char])] -&gt; [(RealReg, [Char])]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[RealReg] -&gt; [[Char]] -&gt; [(RealReg, [Char])]
forall a b. [a] -&gt; [b] -&gt; [(a, b)]
</span><a href="../../base/src/GHC.List.html#zip"><span class="hs-identifier hs-var">zip</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(RegNo -&gt; RealReg) -&gt; [RegNo] -&gt; [RealReg]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">RegNo -&gt; RealReg
</span><a href="GHC.Platform.Reg.html#realRegSingle"><span class="hs-identifier hs-var">realRegSingle</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">RegNo
</span><a href="GHC.CmmToAsm.X86.Regs.html#firstxmm"><span class="hs-identifier hs-var">firstxmm</span></a></span><span class="hs-glyph">..</span><span class="annot"><span class="annottext">Platform -&gt; RegNo
</span><a href="GHC.CmmToAsm.X86.Regs.html#lastxmm"><span class="hs-identifier hs-var">lastxmm</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681007781"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[[Char]]
</span><a href="#local-6989586621681007775"><span class="hs-identifier hs-var">greys</span></a></span><span>
</span><span id="line-48"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-49"></span><span>    </span><span class="hs-comment">-- 16 colors - enough for amd64 gp regs</span><span>
</span><span id="line-50"></span><span>    </span><span id="local-6989586621681007778"><span class="annot"><span class="annottext">colors :: [[Char]]
</span><a href="#local-6989586621681007778"><span class="hs-identifier hs-var hs-var">colors</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#800000&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#ff0000&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#808000&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#ffff00&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#008000&quot;</span></span><span>
</span><span id="line-51"></span><span>             </span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#00ff00&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#008080&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#00ffff&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#000080&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#0000ff&quot;</span></span><span>
</span><span id="line-52"></span><span>             </span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#800080&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#ff00ff&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#87005f&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#875f00&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#87af00&quot;</span></span><span>
</span><span id="line-53"></span><span>             </span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#ff00af&quot;</span></span><span class="hs-special">]</span><span>
</span><span id="line-54"></span><span>
</span><span id="line-55"></span><span>    </span><span class="hs-comment">-- 16 shades of grey, enough for the currently supported</span><span>
</span><span id="line-56"></span><span>    </span><span class="hs-comment">-- SSE extensions.</span><span>
</span><span id="line-57"></span><span>    </span><span id="local-6989586621681007775"><span class="annot"><span class="annottext">greys :: [[Char]]
</span><a href="#local-6989586621681007775"><span class="hs-identifier hs-var hs-var">greys</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#0e0e0e&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#1c1c1c&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#2a2a2a&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#383838&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#464646&quot;</span></span><span>
</span><span id="line-58"></span><span>            </span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#545454&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#626262&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#707070&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#7e7e7e&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#8c8c8c&quot;</span></span><span>
</span><span id="line-59"></span><span>            </span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#9a9a9a&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#a8a8a8&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#b6b6b6&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#c4c4c4&quot;</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#d2d2d2&quot;</span></span><span>
</span><span id="line-60"></span><span>            </span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;#e0e0e0&quot;</span></span><span class="hs-special">]</span><span>
</span><span id="line-61"></span><span>
</span><span id="line-62"></span><span>
</span><span id="line-63"></span><span>
</span><span id="line-64"></span><span class="hs-comment">--     32 shades of grey - use for avx 512 if we ever need it</span><span>
</span><span id="line-65"></span><span class="hs-comment">--     greys = [&quot;#070707&quot;,&quot;#0e0e0e&quot;,&quot;#151515&quot;,&quot;#1c1c1c&quot;</span><span>
</span><span id="line-66"></span><span class="hs-comment">--             ,&quot;#232323&quot;,&quot;#2a2a2a&quot;,&quot;#313131&quot;,&quot;#383838&quot;,&quot;#3f3f3f&quot;</span><span>
</span><span id="line-67"></span><span class="hs-comment">--             ,&quot;#464646&quot;,&quot;#4d4d4d&quot;,&quot;#545454&quot;,&quot;#5b5b5b&quot;,&quot;#626262&quot;</span><span>
</span><span id="line-68"></span><span class="hs-comment">--             ,&quot;#696969&quot;,&quot;#707070&quot;,&quot;#777777&quot;,&quot;#7e7e7e&quot;,&quot;#858585&quot;</span><span>
</span><span id="line-69"></span><span class="hs-comment">--             ,&quot;#8c8c8c&quot;,&quot;#939393&quot;,&quot;#9a9a9a&quot;,&quot;#a1a1a1&quot;,&quot;#a8a8a8&quot;</span><span>
</span><span id="line-70"></span><span class="hs-comment">--             ,&quot;#afafaf&quot;,&quot;#b6b6b6&quot;,&quot;#bdbdbd&quot;,&quot;#c4c4c4&quot;,&quot;#cbcbcb&quot;</span><span>
</span><span id="line-71"></span><span class="hs-comment">--             ,&quot;#d2d2d2&quot;,&quot;#d9d9d9&quot;,&quot;#e0e0e0&quot;]</span><span>
</span><span id="line-72"></span><span>
</span><span id="line-73"></span><span>
</span><span id="line-74"></span></pre></body></html>